/**
 * Created by hjx on 2017/7/27.
 */
/*定义路由规则*/
Router.configure({
    /*定义默认模板*/
    layoutTemplate: 'layout',
    /*定义等待模板*/
    loadingTemplate: 'loading',
    /*定义资源未寻到模板*/
    notFoundTemplate: 'notFound',
    /*waitON()函数，动态显示一段等待动画，直到匿名方法内方法完成
    * Meteor.subscribe(）定义了一个订阅
    */
    waitOn: function() { return Meteor.subscribe('Posts'); }
});

/*定义了给一个静态路由，用来设置首页显示的模板是哪个*/
Router.route('/', {name: 'postsList'});

/*定义了一个动态路由根据Posts集合里的帖子_id来动态显示该帖子的内容*/
Router.route('/posts/:_id', {
    name: 'postPage',
    data: function() { return Posts.findOne(this.params._id); }
});

/*编辑帖子*/
Router.route('/posts/:_id/edit', {
    name: 'postEdit',
    data: function() { return Posts.findOne(this.params._id); }
});

/*提交数据*/
Router.route('/submit', {name: 'postSubmit'});

/*定义了一个封装的匿名函数来拦截未登录的用户，如果未登录，url重定向accessDenied，否则继续访问*/
var requireLogin = function() {
    if (! Meteor.user()) {
        /*定义一个加载动画，过度判断用户登录的时间*/
        if (Meteor.loggingIn()) {
            this.render(this.loadingTemplate);
        } else {
            this.render('accessDenied');
        }
    } else {
        this.next();
    }
}

/*定义postPage路由，_id为非法id时（不存在的id）显示dataNotFound模板*/
Router.onBeforeAction('dataNotFound', {only: 'postPage'});

/*定义postSubmit路由，用户未登录，不让访问*/
Router.onBeforeAction(requireLogin, {only: 'postSubmit'});
